package windbell.domain.risk;

import edu.fudan.mylang.pf.EntityImplementation;
import java.util.Collection;
import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;
import windbell.domain.risk.BaseHasSimplePy;
import windbell.domain.risk.RiskCategory;
import windbell.domain.risk.RiskCommonIssue;
import windbell.domain.risk.impl.RiskSubCategoryImpl;
import windbell.domain.risk.proxy.RiskSubCategoryProxy;

@EntityImplementation(implementBy = RiskSubCategoryImpl.class)
public interface RiskSubCategory extends BaseHasSimplePy {
  public abstract RiskCategory getCategory();
  
  public abstract Collection<RiskCommonIssue> getCommonIssues();
  
  public abstract RiskCommonIssue createAndAddtoCommonIssues();
  
  public abstract RiskCommonIssue createAndAddtoCommonIssues(final Procedure1<RiskCommonIssue> updater);
  
  public abstract RiskSubCategory removeFromCommonIssues(final RiskCommonIssue riskCommonIssue);
  
  public abstract RiskSubCategory removeAllCommonIssues();
  
  public abstract RiskSubCategoryProxy toProxy();
}
